The number and variety of wireless terminal devices, such as mobile telephones, personal computers and personal digital assistants (PDAs) with wireless communication capabilities, self service kiosks and two-way pagers is rapidly increasing. Software applications which run on these devices increase their utility. For example, a mobile phone may include an application which retrieves the weather for a range of cities, or a PDA may include an application that allows a user to shop for groceries. These software applications take advantage of wireless connectivity to a data network (such as the internet) in order to provide timely and useful services to users.
As is well known in the art, the various software applications installed on any given terminal device may be developed by respective different application providers. Software application developers frequently produce new and/or updated versions of their software. Such software updates may be released on a very frequent basis, as, for example, in the case of patches to resolve defects in previously released software. Major upgrades may be released on, for example, a yearly or bi-yearly basis, and often provide new functions to enhance the utility of a particular device.
However, while software developers may readily develop and release software updates, actual implementation of updates on all of the affected wireless devices is highly complex. For example, in a wireless network, connectivity is frequently intermittent, so that a particular device may not be connected to a network when an update is released. In this case, some means is needed to enable the update to be downloaded and installed at some later time. Even when this is accomplished, some devices may lack resources (such as sufficient memory) to download and successfully install a particular update. In other cases, an application update may require that a device's controller software be updated before the application update is installed. In still other cases, a series of application updates must be downloaded and installed in a particular order.
A further complicating factor is that application developers may use any of a variety of different systems to manage the implementation of their software upgrades. For example, many software developers use a Web-based Graphical User Interface (GUI) to interact with the service provider server to manage upgrades, while others may prefer to use an extensible markup language (XML) interface or an Open Mobile Alliance standard device management proxy interface. Further, XML may be exchanged using Web Service or SOAP as the protocol, or may be sent over hypertext transfer protocol (HTTP) directly.
Methods and techniques that simplify device management by overcoming at least some the of above difficulties remain highly desirable.
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.